﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Financeiro.Dados;

namespace Financeiro.Model
{
    public class NotaFiscalModel
    {
        #region Fields

        private int id;
        private int id_cliente;

        #endregion


        #region Properties

        public int Id
        {
            get { return id; }
            set { id = value; }
        }

        public int Id_cliente
        {
            get { return id_cliente; }
            set { id_cliente = value; }
        }

        #endregion

        #region Constructors

        public NotaFiscalModel()
        {}

        public NotaFiscalModel(int id, int id_cliente)
        {
            this.id = id;
            this.id_cliente = id_cliente;
        }

        #endregion

        #region Methods

        public string dataPagamento()
        {
            return NotaFiscalDAO.buscaDataPagamento(Id);
        }

        public int idAtendimento()
        {
            return NotaFiscalDAO.buscaIdAtendimento(Id);
        }

        public DataTable dadosCliente()
        {
            return NotaFiscalDAO.dadosCliente(Id_cliente);
        }

        public DataTable servicosUtilizados()
        {
            return NotaFiscalDAO.buscarServicos(Id);
        }

        public ImpostosServico calculaImpostos()
        {
            DataTable dt = servicosUtilizados();

            double baseCalculo = 0;

            if (dt != null)
            {
                foreach (DataRow dr in dt.Rows)
                {
                    baseCalculo += Convert.ToDouble(dr[4].ToString());
                }
            }

            // calculo de impostos
            ImpostosServico impostos = new ImpostosServico(baseCalculo);

            return impostos;
        }

        public string calculaTotal(ImpostosServico impostos)
        {
            return String.Format("{0:c}", impostos.BaseCalculo  + impostos.totalImposto());

        }

        #endregion


        #region Static Methods

        public static DataTable dadosEmpresa()
        {
            return NotaFiscalDAO.dadosEmpresa();
        }


        public static int buscaIdCliente(int id_conta)
        {
            return NotaFiscalDAO.buscaIdCliente(id_conta);
        }

        #endregion

    }
}
